{
  "cells": [
    {
      "cell_type": "markdown",
      "source": [
        "# Locally Weighted Scatterplot Smoothing (LOWESS)"
      ],
      "metadata": {
        "nteract": {
          "transient": {
            "deleting": false
          }
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import numpy as np\n",
        "import pandas as pd\n",
        "import matplotlib.pyplot as plt\n",
        "import pylab as pl\n",
        "\n",
        "import warnings\n",
        "warnings.filterwarnings(\"ignore\")\n",
        "\n",
        "# yfinance is used to fetch data\n",
        "import yfinance as yf\n",
        "yf.pdr_override()"
      ],
      "outputs": [],
      "execution_count": 1,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:10.042Z",
          "iopub.execute_input": "2020-05-22T02:06:10.047Z",
          "iopub.status.idle": "2020-05-22T02:06:11.232Z",
          "shell.execute_reply": "2020-05-22T02:06:11.253Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "# input\n",
        "symbol = 'AMD'\n",
        "start = '2007-01-01'\n",
        "end = '2018-08-27'\n",
        "\n",
        "# Read data \n",
        "dataset = yf.download(symbol,start,end)\n",
        "\n",
        "# View Columns\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "stream",
          "name": "stdout",
          "text": [
            "[*********************100%***********************]  1 of 1 completed\n"
          ]
        },
        {
          "output_type": "execute_result",
          "execution_count": 2,
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Close</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Open</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>Date</th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "      <th></th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2007-01-03</th>\n",
              "      <td>19.520000</td>\n",
              "      <td>19.520000</td>\n",
              "      <td>20.400000</td>\n",
              "      <td>19.350000</td>\n",
              "      <td>20.080000</td>\n",
              "      <td>28350300</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-04</th>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.320000</td>\n",
              "      <td>19.660000</td>\n",
              "      <td>23652500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-05</th>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.910000</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>15902400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-08</th>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>15814800</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2007-01-09</th>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.450001</td>\n",
              "      <td>14494200</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "            Adj Close      Close       High        Low       Open    Volume\n",
              "Date                                                                       \n",
              "2007-01-03  19.520000  19.520000  20.400000  19.350000  20.080000  28350300\n",
              "2007-01-04  19.790001  19.790001  19.860001  19.320000  19.660000  23652500\n",
              "2007-01-05  19.709999  19.709999  19.910000  19.540001  19.540001  15902400\n",
              "2007-01-08  19.469999  19.469999  19.860001  19.370001  19.709999  15814800\n",
              "2007-01-09  19.650000  19.650000  19.709999  19.370001  19.450001  14494200"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 2,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:11.239Z",
          "iopub.execute_input": "2020-05-22T02:06:11.242Z",
          "iopub.status.idle": "2020-05-22T02:06:12.597Z",
          "shell.execute_reply": "2020-05-22T02:06:12.717Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset = dataset.reset_index()\n",
        "dataset.head()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 3,
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Close</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Open</th>\n",
              "      <th>Volume</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>0</th>\n",
              "      <td>2007-01-03</td>\n",
              "      <td>19.520000</td>\n",
              "      <td>19.520000</td>\n",
              "      <td>20.400000</td>\n",
              "      <td>19.350000</td>\n",
              "      <td>20.080000</td>\n",
              "      <td>28350300</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>1</th>\n",
              "      <td>2007-01-04</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.320000</td>\n",
              "      <td>19.660000</td>\n",
              "      <td>23652500</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2</th>\n",
              "      <td>2007-01-05</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.910000</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>19.540001</td>\n",
              "      <td>15902400</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>3</th>\n",
              "      <td>2007-01-08</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.469999</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>15814800</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>4</th>\n",
              "      <td>2007-01-09</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.650000</td>\n",
              "      <td>19.709999</td>\n",
              "      <td>19.370001</td>\n",
              "      <td>19.450001</td>\n",
              "      <td>14494200</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "        Date  Adj Close      Close       High        Low       Open    Volume\n",
              "0 2007-01-03  19.520000  19.520000  20.400000  19.350000  20.080000  28350300\n",
              "1 2007-01-04  19.790001  19.790001  19.860001  19.320000  19.660000  23652500\n",
              "2 2007-01-05  19.709999  19.709999  19.910000  19.540001  19.540001  15902400\n",
              "3 2007-01-08  19.469999  19.469999  19.860001  19.370001  19.709999  15814800\n",
              "4 2007-01-09  19.650000  19.650000  19.709999  19.370001  19.450001  14494200"
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 3,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:12.610Z",
          "iopub.execute_input": "2020-05-22T02:06:12.617Z",
          "iopub.status.idle": "2020-05-22T02:06:12.631Z",
          "shell.execute_reply": "2020-05-22T02:06:12.721Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset['Increase_Decrease'] = np.where(dataset['Volume'].shift(-1) > dataset['Volume'],1,0)\n",
        "dataset['Buy_Sell_on_Open'] = np.where(dataset['Open'].shift(-1) > dataset['Open'],1,0)\n",
        "dataset['Buy_Sell'] = np.where(dataset['Adj Close'].shift(-1) > dataset['Adj Close'],1,0)\n",
        "dataset['Returns'] = dataset['Adj Close'].pct_change()\n",
        "dataset = dataset.dropna()"
      ],
      "outputs": [],
      "execution_count": 4,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:12.638Z",
          "iopub.execute_input": "2020-05-22T02:06:12.644Z",
          "iopub.status.idle": "2020-05-22T02:06:12.653Z",
          "shell.execute_reply": "2020-05-22T02:06:13.776Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "dataset.tail()"
      ],
      "outputs": [
        {
          "output_type": "execute_result",
          "execution_count": 5,
          "data": {
            "text/html": [
              "<div>\n",
              "<style scoped>\n",
              "    .dataframe tbody tr th:only-of-type {\n",
              "        vertical-align: middle;\n",
              "    }\n",
              "\n",
              "    .dataframe tbody tr th {\n",
              "        vertical-align: top;\n",
              "    }\n",
              "\n",
              "    .dataframe thead th {\n",
              "        text-align: right;\n",
              "    }\n",
              "</style>\n",
              "<table border=\"1\" class=\"dataframe\">\n",
              "  <thead>\n",
              "    <tr style=\"text-align: right;\">\n",
              "      <th></th>\n",
              "      <th>Date</th>\n",
              "      <th>Adj Close</th>\n",
              "      <th>Close</th>\n",
              "      <th>High</th>\n",
              "      <th>Low</th>\n",
              "      <th>Open</th>\n",
              "      <th>Volume</th>\n",
              "      <th>Increase_Decrease</th>\n",
              "      <th>Buy_Sell_on_Open</th>\n",
              "      <th>Buy_Sell</th>\n",
              "      <th>Returns</th>\n",
              "    </tr>\n",
              "  </thead>\n",
              "  <tbody>\n",
              "    <tr>\n",
              "      <th>2928</th>\n",
              "      <td>2018-08-20</td>\n",
              "      <td>19.980000</td>\n",
              "      <td>19.980000</td>\n",
              "      <td>20.08</td>\n",
              "      <td>19.350000</td>\n",
              "      <td>19.790001</td>\n",
              "      <td>62983200</td>\n",
              "      <td>0</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.010622</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2929</th>\n",
              "      <td>2018-08-21</td>\n",
              "      <td>20.400000</td>\n",
              "      <td>20.400000</td>\n",
              "      <td>20.42</td>\n",
              "      <td>19.860001</td>\n",
              "      <td>19.980000</td>\n",
              "      <td>55629000</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.021021</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2930</th>\n",
              "      <td>2018-08-22</td>\n",
              "      <td>20.900000</td>\n",
              "      <td>20.900000</td>\n",
              "      <td>20.92</td>\n",
              "      <td>20.209999</td>\n",
              "      <td>20.280001</td>\n",
              "      <td>62002700</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.024510</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2931</th>\n",
              "      <td>2018-08-23</td>\n",
              "      <td>22.290001</td>\n",
              "      <td>22.290001</td>\n",
              "      <td>22.32</td>\n",
              "      <td>21.139999</td>\n",
              "      <td>21.190001</td>\n",
              "      <td>113444100</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>1</td>\n",
              "      <td>0.066507</td>\n",
              "    </tr>\n",
              "    <tr>\n",
              "      <th>2932</th>\n",
              "      <td>2018-08-24</td>\n",
              "      <td>23.980000</td>\n",
              "      <td>23.980000</td>\n",
              "      <td>24.00</td>\n",
              "      <td>22.670000</td>\n",
              "      <td>22.910000</td>\n",
              "      <td>164328200</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0</td>\n",
              "      <td>0.075819</td>\n",
              "    </tr>\n",
              "  </tbody>\n",
              "</table>\n",
              "</div>"
            ],
            "text/plain": [
              "           Date  Adj Close      Close   High        Low       Open     Volume  \\\n",
              "2928 2018-08-20  19.980000  19.980000  20.08  19.350000  19.790001   62983200   \n",
              "2929 2018-08-21  20.400000  20.400000  20.42  19.860001  19.980000   55629000   \n",
              "2930 2018-08-22  20.900000  20.900000  20.92  20.209999  20.280001   62002700   \n",
              "2931 2018-08-23  22.290001  22.290001  22.32  21.139999  21.190001  113444100   \n",
              "2932 2018-08-24  23.980000  23.980000  24.00  22.670000  22.910000  164328200   \n",
              "\n",
              "      Increase_Decrease  Buy_Sell_on_Open  Buy_Sell   Returns  \n",
              "2928                  0                 1         1  0.010622  \n",
              "2929                  1                 1         1  0.021021  \n",
              "2930                  1                 1         1  0.024510  \n",
              "2931                  1                 1         1  0.066507  \n",
              "2932                  0                 0         0  0.075819  "
            ]
          },
          "metadata": {}
        }
      ],
      "execution_count": 5,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:12.663Z",
          "iopub.execute_input": "2020-05-22T02:06:12.668Z",
          "iopub.status.idle": "2020-05-22T02:06:12.679Z",
          "shell.execute_reply": "2020-05-22T02:06:13.780Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "import statsmodels.api as sm"
      ],
      "outputs": [],
      "execution_count": 6,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:12.687Z",
          "iopub.execute_input": "2020-05-22T02:06:12.691Z",
          "iopub.status.idle": "2020-05-22T02:06:13.729Z",
          "shell.execute_reply": "2020-05-22T02:06:13.784Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "X = dataset['Adj Close']\n",
        "y = dataset['Returns']"
      ],
      "outputs": [],
      "execution_count": 7,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:13.739Z",
          "iopub.execute_input": "2020-05-22T02:06:13.744Z",
          "iopub.status.idle": "2020-05-22T02:06:13.754Z",
          "shell.execute_reply": "2020-05-22T02:06:13.787Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "lowess = sm.nonparametric.lowess(X, y, frac=.3)"
      ],
      "outputs": [],
      "execution_count": 8,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:13.761Z",
          "iopub.execute_input": "2020-05-22T02:06:13.766Z",
          "iopub.status.idle": "2020-05-22T02:06:14.940Z",
          "shell.execute_reply": "2020-05-22T02:06:14.968Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "pl.clf()\n",
        "pl.plot(X, y, label='y noisy')\n",
        "pl.plot(X, lowess, label='y pred')\n",
        "pl.legend()\n",
        "pl.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": [
              "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\n"
            ],
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 9,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:14.951Z",
          "iopub.execute_input": "2020-05-22T02:06:14.956Z",
          "iopub.status.idle": "2020-05-22T02:06:15.130Z",
          "shell.execute_reply": "2020-05-22T02:06:15.379Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "lowess_x = list(zip(*lowess))[0]\n",
        "lowess_y = list(zip(*lowess))[1]"
      ],
      "outputs": [],
      "execution_count": 10,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:15.138Z",
          "iopub.execute_input": "2020-05-22T02:06:15.143Z",
          "iopub.status.idle": "2020-05-22T02:06:15.151Z",
          "shell.execute_reply": "2020-05-22T02:06:15.382Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "from scipy.interpolate import interp1d\n",
        "f = interp1d(lowess_x, lowess_y, bounds_error=False)\n",
        "\n",
        "xnew = [i/10. for i in range(400)]"
      ],
      "outputs": [],
      "execution_count": 11,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:15.158Z",
          "iopub.execute_input": "2020-05-22T02:06:15.162Z",
          "iopub.status.idle": "2020-05-22T02:06:15.171Z",
          "shell.execute_reply": "2020-05-22T02:06:15.385Z"
        }
      }
    },
    {
      "cell_type": "code",
      "source": [
        "ynew = f(xnew)\n",
        "\n",
        "plt.plot(X, y, 'o')\n",
        "plt.plot(lowess_x, lowess_y, '*')\n",
        "plt.plot(xnew, ynew, '-')\n",
        "plt.show()"
      ],
      "outputs": [
        {
          "output_type": "display_data",
          "data": {
            "image/png": [
              "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\n"
            ],
            "text/plain": [
              "<Figure size 432x288 with 1 Axes>"
            ]
          },
          "metadata": {
            "needs_background": "light"
          }
        }
      ],
      "execution_count": 12,
      "metadata": {
        "collapsed": true,
        "outputExpanded": false,
        "jupyter": {
          "source_hidden": false,
          "outputs_hidden": false
        },
        "nteract": {
          "transient": {
            "deleting": false
          }
        },
        "execution": {
          "iopub.status.busy": "2020-05-22T02:06:15.176Z",
          "iopub.execute_input": "2020-05-22T02:06:15.182Z",
          "iopub.status.idle": "2020-05-22T02:06:15.369Z",
          "shell.execute_reply": "2020-05-22T02:06:15.388Z"
        }
      }
    }
  ],
  "metadata": {
    "kernel_info": {
      "name": "python3"
    },
    "language_info": {
      "version": "3.5.5",
      "mimetype": "text/x-python",
      "pygments_lexer": "ipython3",
      "file_extension": ".py",
      "name": "python",
      "codemirror_mode": {
        "name": "ipython",
        "version": 3
      },
      "nbconvert_exporter": "python"
    },
    "kernelspec": {
      "argv": [
        "C:\\Users\\Tin Hang\\Anaconda3\\envs\\py35\\python.exe",
        "-m",
        "ipykernel_launcher",
        "-f",
        "{connection_file}"
      ],
      "display_name": "Python 3",
      "language": "python",
      "name": "python3"
    },
    "nteract": {
      "version": "0.23.1"
    }
  },
  "nbformat": 4,
  "nbformat_minor": 0
}